package com.tai.cobrapp.activity;

import com.tai.cobrapp.R;
import com.tai.cobrapp.activity.helpers.MenuActivity;
import com.tai.cobrapp.backend.Backend;
import com.tai.cobrapp.model.Usuario;

import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.Toast;

public class OptionsMenuActivity extends MenuActivity {
	private final static int SECURE_ON_BACK_DIALOG = 1;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		setContentView(R.layout.options_menu);
		
		// obtengo los extras que tiene el intent q inicio esta actividad en MainActivity
		if( this.getIntent().getExtras() != null ){
			Toast.makeText(this, this.getString(R.string.welcome) + " " + this.getIntent().getExtras().getString("user_name") + "!", Toast.LENGTH_SHORT).show();
			//Toast.makeText(this, "User id " + Usuario.getUserInstance().getId() , Toast.LENGTH_SHORT).show();
		}
		
		// Si el usuario logueado es el super, muestra el panel de administrador
		final LinearLayout layerToHide = (LinearLayout)this.findViewById(R.id.layer_to_hide);
		//String sup = "super";
		//Log.d("user log",Usuario.getUserInstance().getUsername().toString().toLowerCase());
		if(Usuario.getUserInstance().getUsername().toString().toLowerCase().equalsIgnoreCase("super")){
			layerToHide.setVisibility(View.VISIBLE);
			//Log.d("user","ES super");
		}else{
			//layerToHide.setVisibility(View.VISIBLE);
			//Log.d("user","NO es super");
			layerToHide.setVisibility(View.INVISIBLE);	 
		}
	}
	
	@Override
	public boolean onPrepareOptionsMenu(Menu menu) {
		// TODO Auto-generated method stub
		// desactivo la opcion del menu q hace referencia a esta misma activity
		menu.findItem(R.id.main_menu).setEnabled(false);
		return super.onPrepareOptionsMenu(menu);
	}
	@Override
	public void onBackPressed() {
		// Preguntar si esta seguro que desea salir, porque sino pierde el relevamiento
		showDialog(SECURE_ON_BACK_DIALOG);
		
		//super.onBackPressed();
	}
	@Override
	protected Dialog onCreateDialog(int id) {
		//Dialog dialogo;
		switch(id){
		case SECURE_ON_BACK_DIALOG:
			AlertDialog.Builder builder = new AlertDialog.Builder(this);
	        builder.setMessage(R.string.are_you_sure_to_exit_app)
	               .setPositiveButton(R.string.exit, new DialogInterface.OnClickListener() {
	                   public void onClick(DialogInterface dialog, int id) {
	                	   Intent i = new Intent(OptionsMenuActivity.this, LoginActivity.class);
	                	   startActivity(i);
	                   }
	               })
	               .setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
	                   public void onClick(DialogInterface dialog, int id) {
	                       // User cancelled the dialog
	                   }
	               });
	        // Create the AlertDialog object and return it
	        return builder.create();
		default:
			return super.onCreateDialog(id);
		}
	}
		
	private boolean chkActiveEstablishmentsExists(){
		return Backend.getInstance().bkEndchkActiveEstabExists(this);
	}
	
	public void admin_panel_btn_pressed(View view)
	{
		Intent i = new Intent(this, AdminPanelActivity.class);
		// para enviarle extras a la secondActivity
		// aca puedo pasarle el ID de usuario, deberia traerlo desde el login, en vez del nombre de usuario solamente
		i.putExtra("mensaje", "Este mensaje se envia desde MainActivity");
		startActivity(i);
	}
	public void new_survey_btn_pressed(View view)
	{
		if ( chkActiveEstablishmentsExists() ) {
			//if(chkDevicesExists()){
				Intent i = new Intent(this, EstablishmentSelectionActivity.class);
				// para enviarle extras a la secondActivity
				// aca puedo pasarle el ID de usuario, deberia traerlo desde el login, en vez del nombre de usuario solamente
				i.putExtra("mensaje", "Este mensaje se envia desde MainActivity");
				startActivity(i);
		}
		else{
			Toast.makeText(this, R.string.there_are_no_establishments, Toast.LENGTH_SHORT).show();
			//return;
		}
		
	}
	
	public void list_surveys_btn_pressed(View view)
	{
		if(Backend.getInstance().tieneRelevamientos(this, Usuario.getUserInstance().getId())){
			Intent i = new Intent(this, ListSurveysActivity.class);
			// para enviarle extras a la secondActivity
			i.putExtra("mensaje", "Este mensaje se envia desde el Menu");
			startActivity(i);
		}
		else{
			Toast.makeText(this, R.string.you_dont_have_surveys, Toast.LENGTH_SHORT).show();
		}
	}
}
